'''
DataFrame的复合索引操作
'''
import pandas as pd
import numpy as np
#floor()函数：返回不大于输入参数的最大值（向下取整）
#np.random.normal（loc，scale，size）：抽取随机数   loc：均值  scale：标准差  size：维度
data = np.floor(np.random.normal(85,3,(6,3)))
df = pd.DataFrame(data)
print(df)
index = [('classA','F'),('classA','M'),('classB','F'),('classB','M'),('classC','F'),('classC','M')]
df.index = pd.MultiIndex.from_tuples(index)#设置索引，index里面是元组
print(df)

#复合索引的列操作
colunms = [('Age','20+'),('Age','30+'),('Age','40+')]
df.columns = pd.MultiIndex.from_tuples(colunms)
print(df)

#行访问
print("===================================")
print(df.loc['classB','F'])#F是claasB中可索引的元素，算作一个参数
print(df.loc['classA'])
print(df.loc[['classB','classC']])#只能写一个参数，没有关联关系的元组必须用[]框起来，['classB','classC']会报错

#列访问
print("===================================")
print(df.Age)
print(df.Age['20+'])
print(df['Age','40+'])
print(df['Age']['40+'])